﻿using FreeSql.DatabaseModel;using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Newtonsoft.Json;
using FreeSql.DataAnnotations;

namespace Simple.Repository.SimpleEntitys {

	/// <summary>
	/// 系统权限
	/// </summary>
	[JsonObject(MemberSerialization.OptIn), Table(Name = "sys_permission", DisableSyncStructure = true)]
	public partial class SysPermission {

		/// <summary>
		/// 权限Id
		/// </summary>
		[JsonProperty, Column(Name = "id", DbType = "bigint", IsPrimary = true)]
		public long Id { get; set; }

		/// <summary>
		/// 父级权限Id
		/// </summary>
		[JsonProperty, Column(Name = "parent_id", DbType = "bigint")]
		public long ParentId { get; set; }

		/// <summary>
		/// 权限类型：菜单权限、页面权限、功能权限
		/// </summary>
		[JsonProperty, Column(Name = "type", IsNullable = false)]
		public string Type { get; set; }

		/// <summary>
		/// 标题
		/// </summary>
		[JsonProperty, Column(Name = "title", IsNullable = false)]
		public string Title { get; set; }

		/// <summary>
		/// 名称
		/// </summary>
		[JsonProperty, Column(Name = "name", IsNullable = false)]
		public string Name { get; set; }

		/// <summary>
		/// 地址
		/// </summary>
		[JsonProperty, Column(Name = "path")]
		public string Path { get; set; }

		/// <summary>
		/// View-component
		/// </summary>
		[JsonProperty, Column(Name = "component")]
		public string Component { get; set; }

		/// <summary>
		/// Vue-icon
		/// </summary>
		[JsonProperty, Column(Name = "icon")]
		public string Icon { get; set; }

		/// <summary>
		/// Vue-isAffix
		/// </summary>
		[JsonProperty, Column(Name = "isAffix", DbType = "int")]
		public int? IsAffix { get; set; }

		/// <summary>
		/// Vue-isFull
		/// </summary>
		[JsonProperty, Column(Name = "isFull", DbType = "int")]
		public int? IsFull { get; set; }

		/// <summary>
		/// Vue-isHide
		/// </summary>
		[JsonProperty, Column(Name = "isHide", DbType = "int")]
		public int? IsHide { get; set; }

		/// <summary>
		/// Vue-isKeepAlive
		/// </summary>
		[JsonProperty, Column(Name = "isKeepAlive", DbType = "int")]
		public int? IsKeepAlive { get; set; }

		/// <summary>
		/// 外部链接Url地址
		/// </summary>
		[JsonProperty, Column(Name = "isLink", StringLength = 1000)]
		public string IsLink { get; set; }

		/// <summary>
		/// 排序
		/// </summary>
		[JsonProperty, Column(Name = "sort", DbType = "int")]
		public int Sort { get; set; }

		/// <summary>
		/// 支持版本：基础班√/专业版√/企业版√
		/// </summary>
		[JsonProperty, Column(Name = "version")]
		public string Version { get; set; }

		/// <summary>
		/// 初始化角色
		/// </summary>
		[JsonProperty, Column(Name = "init_role", IsNullable = false)]
		public string InitRole { get; set; }

	}

}
